import { IUser } from 'src/modules/user/user.interfaces';
import { Entity, PrimaryGeneratedColumn, Column } from 'typeorm';

@Entity('users')
export class User implements IUser {
  @PrimaryGeneratedColumn('uuid')
  id: string;

  @Column({
    type: 'text',
    nullable: true,
  })
  lastNameRu: string | null;

  @Column({
    type: 'text',
    nullable: true,
  })
  lastNameEn: string | null;

  @Column({
    type: 'text',
    nullable: true,
  })
  firstNameRu: string | null;

  @Column({
    type: 'text',
    nullable: true,
  })
  firstNameEn: string | null;

  @Column({
    type: 'uuid',
    nullable: true,
  })
  positionId: string | null;

  @Column({
    type: 'text',
    nullable: true,
  })
  positionNameRu: string | null;

  @Column({
    type: 'text',
    nullable: true,
  })
  positionNameEn: string | null;

  @Column({
    type: 'uuid',
    nullable: true,
  })
  unitId: string | null;

  @Column({
    type: 'text',
    nullable: true,
  })
  unitNameRu: string | null;

  @Column({
    type: 'text',
    nullable: true,
  })
  unitNameEn: string | null;

  @Column({
    type: 'text',
    nullable: true,
  })
  head1Id: string | null;

  @Column({
    type: 'text',
    nullable: true,
  })
  head1NameRu: string | null;

  @Column({
    type: 'text',
    nullable: true,
  })
  head1NameEn: string | null;

  @Column({
    type: 'text',
    nullable: true,
  })
  head1Email: string | null;

  @Column({
    type: 'text',
    nullable: true,
  })
  email: string | null;

  @Column({
    type: 'text',
    nullable: true,
  })
  phone: string | null;

  @Column({
    type: 'text',
    nullable: true,
  })
  workplace: string | null;

  @Column({
    type: 'text',
    nullable: true,
  })
  birthDate: string | null;

  @Column({
    type: 'uuid',
    nullable: true,
  })
  orgUuid: string | null;

  @Column({
    type: 'text',
    nullable: true,
  })
  orgNameRu: string | null;

  @Column({
    type: 'text',
    nullable: true,
  })
  orgNameEn: string | null;

  @Column({
    type: 'text',
    nullable: true,
  })
  cityRu: string | null;

  @Column({
    type: 'text',
    nullable: true,
  })
  cityEn: string | null;

  @Column({ type: 'boolean', default: false })
  hideEmployee: boolean;

  @Column({ type: 'json', default: [] })
  favorites?: string[] | null;
}
